1. Field of the Invention
The present invention relates to high-availability computing and more particularly to cluster node configuration in a high-availability computing architecture.
2. Description of the Related Art
Computing clusters have become common in the field of high-availability and high-performance computing. Cluster-based systems exhibit three important and fundamental characteristics or properties: reliability, availability and serviceability. Each of these features is of paramount importance when designing the software and the hardware of a new robust clustered system. As opposed to the symmetric multi-processing (SMP) systems whose scalability can be limited and which can result in substantially diminished returns upon the addition of processors to the system, a clustered-based system consists of multiple computers that are connected over high-speed network communicative linkages.
Each computer in a cluster enjoys its own memory, possibly its own disk space and it hosts its own local operating system. Each node within the cluster system can be viewed as a processor-memory module that cooperates with other nodes such that it can provide system resources and services to user applications. Nodes in a cluster system, however, are not limited to a physical computing system. Rather, nodes in a cluster system also can include virtual machines operating in a physical host environment.
Clusters can be characterized by increased availability since the failure of a particular node does not affect the operation of the remaining nodes. Rather, any one failed node can be isolated and no longer utilized by the cluster-based system until the node can be repaired and incorporated again within the cluster. Additionally, the load of a failed node within a cluster can be equitably shared among the functional nodes of the cluster. Thus, clusters have proven to be a sensible architecture for deploying applications in the distributed environment and clusters are now the platform of choice in scalable, high-performance computing.
Generally, in the middleware environment, cluster membership must be manually managed. Typically, cluster membership management requires doing capacity planning to determine how many cluster members are necessary for a given environment. Subsequently, an installation of a middleware platform on a machine must be provided as a host node for each of the members. Host nodes usually are chosen based upon some sort of criteria specified by the applications to be deployed to the cluster. Examples include dependencies on third party software collocated on the same host node, a requirement for a minimum amount of memory or central processing unit (CPU) power on the host node, and the like.
Occasionally, a cluster may require additional computing capacity. In the event a cluster requires additional computing capacity, an existing node capable of hosting the cluster member must be located or, if one does not exist, an additional host node must be configured and added into the middleware environment. After the node has been located or added, then a new cluster member then must be manually created on a new host node that demonstrates the capabilities required by the applications before the cluster can make use of the additional capacity.
Advanced deployment technologies virtualize the middleware environment, breaking down isolated clusters where normally host nodes were dedicated to a single cluster. Rather, in the virtualized middleware environment, host nodes can be combined into shared resource pools of nodes. For clusters associated with a shared resource pool, however, every node in the pool must include a cluster member created on the node irrespective of the capability and configuration of the node. Thus, manual planning and thought is required to selectively place nodes into resource pools in order to ensure that a cluster does not become associated with a pool that contains nodes incapable of hosting applications to be deployed to the cluster.